Subject: handling unequal SAPs

From: "Steve Klein" <[email-masked]>
Date: Thu, 12 Aug 93 12:07:19 EDT

First an introduction:

Name:      Steve Klein
Company:   IBM
Email:     [email-masked]
Telephone: 919-254-5623
Status:    Active Member

I am commenting on a couple of items:
 1) deferring establishment of a DLSw connection until SABME/SNRM time
 2) current DLSw does not support an unequal DSAP and SSAP

Establishing a DLSw connection at MAC discovery time has the
following benefits:
 - Terminates the LAN route, thereby allowing the extension of
   a source route bridged path beyond its eight hop limit.
 - Keeps discovery frames off of the wide area transport.  Once a
   MAC address has been discovered, TEST commands searching for that
   MAC address can be responded to locally, alleviating congestion
   of the wide area link.

DLSw does support an unequal DSAP and SSAP.  A TEST command destined
to a null DSAP will establish one DLSw connection.  An educated
assumption is made that the DSAP will equal the SSAP in a subsequent
XID.  IBM's experience with the 6611 shows that this is the case
more often that not.  When an XID with the DSAP = SSAP is received,
the DLSw connection is already established.

If the subsequent XID has a DSAP that is not equal to the SSAP, a
new connection is established.  The XID generates a CANUREACH frame
that is directed to the specific DLSw partner that found the MAC
address when the null DSAP TEST command was received (a CANUREACH
to all DLSw partners is not necessary). The Circuit IDs generated
by the DLSw partners for this new connection will be different
from those generated for the previous (DSAP=SSAP) connection.

If a second XID is received with a DSAP different from the original
SSAP and the previous DSAP, a third connection is initiated.

The handling of unequal SAPs in this manner is not apparent from
RFC 1434.  RFC 1434 implies that a CANUREACH frame is generated
only when a TEST command or an XID command addressed to a null SAP is
received.  It should say that a CANUREACH is generated when a TEST
command or XID command is received and a data link has not been
started for that particular SSAP/DSAP pair.

The following flow diagram illustrates this point using the second
connect sequence that Alan Barky wanted to begin work on in his
note dated July 19, 1993.

=======================================================================================

abbreviations:  CUR  = CANUREACH            TESTc = TEST command
                ICR  = ICANREACH            TESTr = TEST response
                XIDF = XIDFRAME             DSAP  = destination SAP
                DLID = Data Link ID         SSAP  = source SAP
                TCID = Target Circuit ID
                OCID = Origin Circuit ID

Note: Data Link ID (DLID) = (target MAC.origin MAC.origin SAP.target SAP)

  Station 1 (MAC=A)               Network                Station 2 (MAC=B)

TESTc (DSAP=0/SSAP=4)       CUR(DLID=B.A.4.4)           TESTc (DSAP=0/SSAP=4)
--------------------->      --------------------->      --------------------->

TESTr (DSAP=4/SSAP=0)       ICR(DLID=B.A.4.4, TCID)     TESTr (DSAP=4/SSAP=0)
<---------------------      <---------------------      <---------------------

                            REACH_ACK(DLID=B.A.4.4, OCID, TCID)
                            --------------------->

null XID (DSAP=8/SSAP=4)    CUR(DLID=B.A.4.8)           TESTc (DSAP=0/SSAP=4)
--------------------->      --------------------->      --------------------->

                            ICR(DLID=B.A.4.8, TCID)     TESTr (DSAP=4/SSAP=0)
                            <---------------------      <---------------------

                            REACH_ACK(DLID=B.A.4.8, OCID, TCID)
                            --------------------->

implementation could wait   XIDF(DLID=B.A.4.8, OCID, TCID)   null XID (DSAP=8/SSAP=4)
for another XID or send     --------------------->      --------------------->
an XIDFRAME without waiting

null XID (DSAP=4/SSAP=8)    XIDF(DLID=B.A.4.8, OCID, TCID)   null XID (DSAP=4/SSAP=8)
<---------------------      <---------------------      <---------------------

T2.0 XID (DSAP=8/SSAP=4)    XIDF(DLID=B.A.4.8, OCID, TCID)   T2.0 XID (DSAP=8/SSAP=4)
--------------------->      --------------------->      --------------------->

SABME (DSAP=4/SSAP=8)       CONTACT(DLID=B.A.4.8, OCID, TCID)   SABME (DSAP=4/SSAP=8)
<---------------------      <---------------------      <---------------------

UA (DSAP=8/SSAP=4)          CONTACTED(DLID=B.A.4.8, OCID, TCID)   UA (DSAP=8/SSAP=4)
--------------------->      --------------------->      --------------------->
=======================================================================================

In summary I propose that:

  - We maintain the RFC 1434 design point that a DLSw connection
    should be initiated at discovery time.

  - That unequal SAPs be handled in the manner illustrated above
    and update RFC 1434 to reflect it.

Steve Klein